//! High-level layout description types.
//!
//! We use these to generically describe types and then generate MIR from them.

mod array;
pub use array::ArrayShape;

mod errors;
pub use errors::Error;

mod field;
pub use field::{
    FieldLayout, FieldLayoutEntry, FieldLocator, FieldOp, FieldReadOp, FieldShape, FieldTopology,
    FieldWriteOp, SequenceFieldLayout, SequenceLenDesc, UnitFieldLayout,
};

mod field_ty;
pub use field_ty::{parse_basic_type_str, FieldType};

mod module;
pub use module::{BufContainerEntry, BufContainerLayout, ModTypedef, ModTypedefEntry, ModuleDef};

mod typedef;
pub use typedef::*;

// legacy
//pub mod layout;
